home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / demo / vbdemo.zip / VERSVB.MS_ / VERSVB.MS
Text File  |  1994-09-02  |  8KB  |  290 lines

  1. '**************************************************************************
  2. '*                       Versions/VB 1.1 Setup Script
  3. '**************************************************************************
  4.  
  5. ''$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Windows API include stuff
  11. CONST WS_VISIBLE=&H10000000
  12. CONST WS_BORDER =&H00800000
  13. CONST WS_CLIPCHILDREN =&H02000000
  14. CONST GWL_STYLE =-16
  15. CONST SW_SHOWMAXIMIZED=3
  16.  
  17. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%, iShow%) AS INTEGER
  18. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  19.  
  20. ''Dialog ID's
  21. CONST WELCOME       = 100
  22. CONST ASKQUIT       = 200
  23. CONST DESTPATH      = 300
  24. CONST EXITFAILURE   = 400
  25. CONST EXITQUIT      = 600
  26. CONST EXITSUCCESS   = 700
  27. CONST OPTIONS       = 800
  28. CONST APPHELP       = 110
  29. CONST PATHHELP        = 310
  30. CONST BADPATH       = 6400
  31.  
  32. CONST CDPREVINSTALL    = 7100
  33. CONST CDSHOWNAMEORG    = 7300
  34. CONST CDGETNAMEORG    = 7500
  35. CONST CDNAMEREQ        = 7700
  36. CONST CDORGREQ        = 7800
  37.  
  38. CONST BILLBOARD1    = 9000
  39. CONST BILLBOARD2    = 9001
  40.  
  41. ''Bitmap ID
  42. CONST LOGO = 1
  43.  
  44. GLOBAL DEST$        ''Default destination directory.
  45. GLOBAL OPTCUR$      ''Option selection from option dialog.
  46.  
  47. DECLARE SUB Install
  48. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  49.  
  50.  
  51. INIT:
  52.     ''Maximise frame window
  53.     i1&=SetWindowLong(HwndFrame(), GWL_STYLE, WS_VISIBLE + WS_BORDER + WS_CLIPCHILDREN)
  54.     j1%=ShowWindow(HwndFrame(), SW_SHOWMAXIMIZED)
  55.  
  56.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  57.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  58.  
  59.     i% = SetSizeCheckMode(scmOff)    '' could use scmOff; def = scmOnFatal
  60.     SetBitmap CUIDLL$, LOGO
  61.     SetTitle "VERSIONS/VB 1.1 Setup"
  62.  
  63.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  64.     IF szInf$ = "" THEN
  65.         szInf$ = GetSymbolValue("STF_CWDDIR") + "VERSVB.INF"
  66.     END IF
  67.     ReadInfFile szInf$
  68.  
  69.     ''Setup billboard
  70.     AddToBillboardList CUIDLL$, BILLBOARD1, "FModelessDlgProc", 1
  71.     AddToBillboardList CUIDLL$, BILLBOARD2, "FModelessDlgProc", 1
  72.  
  73.     OPTCUR$ = "1"
  74.     DEST$ = "C:\VERSVB"
  75.     AddSectionFilesToCopyList "system", GetSymbolValue("STF_SRCDIR"), GetWindowsSysDir()
  76.  
  77. '$IFDEF DEBUG
  78.     i% = SetSizeCheckMode(scmOnFatal)    '' could use scmOff; def = scmOnFatal
  79.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  80.     IF IsDriveValid(WinDrive$) = 0 THEN
  81.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  82.         GOTO QUIT
  83.     END IF
  84. '$ENDIF ''DEBUG
  85.  
  86.  
  87. WELCOME:
  88.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  89.     IF sz$ = "CONTINUE" THEN
  90.         UIPop 1
  91.     ELSE
  92.         GOSUB ASKQUIT
  93.         GOTO WELCOME
  94.     END IF
  95.  
  96. GETUSERNAME:
  97.     if DoesFileExist(GetSymbolValue ("STF_SRCDIR")+"versvb.dat", femExists) then
  98.         open GetSymbolValue ("STF_SRCDIR")+"versvb.dat" for input as #1
  99.         line input #1, NameIn$
  100.         line input #1, OrgIn$
  101.         close #1
  102.  
  103.         '' display previous name and organization information
  104.         AddListItem "ConfirmTextIn", NameIn$
  105.         AddListItem "ConfirmTextIn", OrgIn$
  106.         result$=UIStartDlg ("mscuistf.dll", CDPREVINSTALL, "FConfirmDlgProc", APPHELP, HELPPROC$)
  107.         if result$="CONTINUE" then
  108.             UIPop 1
  109.         else
  110.             goto ASKQUIT
  111.         end if
  112.     else    '' Obtain name and organization information
  113.         result$=UIStartDlg ("mscuistf.dll", CDGETNAMEORG, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  114.         NameOut$ = GetSymbolValue("NameOut")
  115.         OrgOut$ = GetSymbolValue("OrgOut")
  116.  
  117.         if result$="CONTINUE" then
  118.             UIPop 1
  119.             if NameOut$ = "" then
  120.                 result$ = UIStartDlg ("mscuistf.dll", CDNAMEREQ, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  121.                 goto GETUSERNAME
  122.             end if
  123.         else
  124.             goto ASKQUIT
  125.         end if
  126.  
  127.         '' Save organization information to a file on disk 1.
  128.         open GetSymbolValue ("STF_SRCDIR")+"versvb.dat" for output as #1
  129.         print #1, NameOut$
  130.         print #1, OrgOut$
  131.         close #1
  132.     end if
  133.  
  134. OPTION:
  135. ''    SetSymbolValue "RadioDefault", OPTCUR$
  136. ''OPTL1:
  137. ''    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", WHICHRCSHELP, HELPPROC$)
  138. ''    OPTCUR$ = GetSymbolValue("ButtonChecked")
  139. ''
  140. ''    IF sz$ = "CONTINUE" THEN
  141. ''       UIPop(1)
  142. ''    ELSEIF sz$ = "REACTIVATE" THEN
  143. ''        GOTO OPTL1
  144. ''    ELSE
  145. ''        GOSUB ASKQUIT
  146. ''        GOTO OPTION
  147. ''    END IF
  148.  
  149.  
  150. GETPATH:
  151.     SetSymbolValue "EditTextIn", DEST$
  152.     SetSymbolValue "EditFocus", "END"
  153. GETPATHL1:
  154.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", PATHHELP, HELPPROC$)
  155.     DEST$ = GetSymbolValue("EditTextOut")
  156.  
  157.     IF sz$ = "CONTINUE" THEN
  158.         IF IsDirWritable(DEST$) = 0 THEN
  159.             GOSUB BADPATH
  160.             GOTO GETPATHL1
  161.         END IF
  162.         UIPop 1
  163.     ELSEIF sz$ = "REACTIVATE" THEN
  164.         GOTO GETPATHL1
  165.     ELSEIF sz$ = "BACK" THEN
  166.         UIPop 1
  167.         GOTO OPTION
  168.     ELSE
  169.         GOSUB ASKQUIT
  170.         GOTO GETPATH
  171.     END IF
  172.  
  173.     Install
  174.  
  175.     if RestartListEmpty() = 0 then
  176.         i% = ExitExecRestart()
  177.     end if
  178.  
  179.  
  180. QUIT:
  181.     ON ERROR GOTO ERRQUIT
  182.  
  183.     IF ERR = 0 THEN
  184.         dlg% = EXITSUCCESS
  185.     ELSEIF ERR = STFQUIT THEN
  186.         dlg% = EXITQUIT
  187.     ELSE
  188.         dlg% = EXITFAILURE
  189.     END IF
  190. QUITL1:
  191.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  192.     IF sz$ = "REACTIVATE" THEN
  193.         GOTO QUITL1
  194.     END IF
  195.     UIPop 1
  196.  
  197.     END
  198.  
  199. ERRQUIT:
  200.     i% = DoMsgBox("Setup sources are corrupted, call StarBase Corporation at (714) 253-6700", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  201.     END
  202.  
  203.  
  204.  
  205. BADPATH:
  206.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  207.     IF sz$ = "REACTIVATE" THEN
  208.         GOTO BADPATH
  209.     END IF
  210.     UIPop 1
  211.     RETURN
  212.  
  213.  
  214.  
  215. ASKQUIT:
  216.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  217.  
  218.     IF sz$ = "EXIT" THEN
  219.         UIPopAll
  220.         ERROR STFQUIT
  221.     ELSEIF sz$ = "REACTIVATE" THEN
  222.         GOTO ASKQUIT
  223.     ELSE
  224.         UIPop 1
  225.     END IF
  226.     RETURN
  227.  
  228.  
  229.  
  230. '**
  231. '** Purpose:
  232. '**     Builds the copy list and performs all installation operations.
  233. '** Arguments:
  234. '**     none.
  235. '** Returns:
  236. '**     none.
  237. '*************************************************************************
  238. SUB Install STATIC
  239.  
  240.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  241.     CreateDir DEST$, cmoNone
  242.  
  243.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  244.     WriteToLogFile ""
  245.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  246.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  247.     WriteToLogFile ""
  248.     WriteToLogFile "May have had to create the directory: " + DEST$
  249.     WriteToLogFile ""
  250.  
  251.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  252.     CopyFilesInCopyList
  253.  
  254.     CreateProgmanGroup "Versions/VB 1.1", "", cmoNone
  255.     ShowProgmanGroup  "Versions/VB 1.1", 1, cmoNone
  256.     CreateProgmanItem "Versions/VB 1.1", "Versions/VB", MakePath(DEST$,"VERSVB.EXE"), "", cmoOverwrite
  257.     CreateProgmanItem "Versions/VB 1.1", "Versions/VB Help", "WINHELP.EXE "+MakePath(DEST$,"VERSVB.HLP"), "", cmoOverwrite
  258.     CreateProgmanItem "Versions/VB 1.1", "Versions/VB Visual Diff", MakePath(DEST$,"VISDIFF.EXE"), "", cmoOverwrite
  259.     CreateProgmanItem "Versions/VB 1.1", "Versions/VB Visual Diff Help", "WINHELP.EXE "+MakePath(DEST$,"VISDIFF.HLP"), "", cmoOverwrite
  260.     CreateProgmanItem "Versions/VB 1.1", "README", "NOTEPAD.EXE "+MakePath(DEST$,"README.TXT"), "", cmoOverwrite
  261.  
  262.     CloseLogFile
  263.  
  264. END SUB
  265.  
  266.  
  267.  
  268. '**
  269. '** Purpose:
  270. '**     Appends a file name to the end of a directory path,
  271. '**     inserting a backslash character as needed.
  272. '** Arguments:
  273. '**     szDir$  - full directory path (with optional ending "\")
  274. '**     szFile$ - filename to append to directory
  275. '** Returns:
  276. '**     Resulting fully qualified path name.
  277. '*************************************************************************
  278. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  279.     IF szDir$ = "" THEN
  280.         MakePath = szFile$
  281.     ELSEIF szFile$ = "" THEN
  282.         MakePath = szDir$
  283.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  284.         MakePath = szDir$ + szFile$
  285.     ELSE
  286.         MakePath = szDir$ + "\" + szFile$
  287.     END IF
  288. END FUNCTION
  289.  
  290.